// 假如我们这个文件是 vite.config.ts
return {
  build: {
    rollupOptions: {
      output: {
        // https://cn.rollupjs.org/configuration-options/#output-entryfilenames
        // 该选项用于指定 chunks 的入口文件模式，其值也可以是一个函数，对每个入口 chunk 调用以返回匹配模式。
        entryFileNames: 'js/[name]-[hash].js',
        // https://cn.rollupjs.org/configuration-options/#output-chunkfilenames
        // 该选项用于对代码分割中产生的 chunk 自定义命名，其值也可以是一个函数，对每个 chunk 调用以返回匹配模式。
        chunkFileNames: 'js/[name]-[hash].js',
        // https://cn.rollupjs.org/configuration-options/#output-assetfilenames
        // 该选项的值是一个匹配模式，用于自定义构建结果中的静态资源名称，或者值为一个函数，对每个资源调用以返回匹配模式。
        assetFileNames(chunkInfo) {
          // 后缀为css的文件
          if (chunkInfo.name?.endsWith('.css')) {
            return 'css/[name]-[hash].css'
          }
          // 图片文件
          const imgExts = ['.png', '.jpg', 'jpeg', 'webp', 'svg', '.gif', '.ico']
          if (imgExts.some(ext => chunkInfo.name?.endsWith(ext))) {
            return 'imgs/[name]-[hash].[ext]'
          }
          // 其他的文件
          return 'assets/[name]-[hash].[ext]'
        }
      }
    }
  }
}
